
package com.monster.service;

import com.monster.pojo.Album;
import com.monster.pojo.Singer;
import com.monster.pojo.Song;

import java.util.ArrayList;
import java.util.List;

public interface SingerService {
    /**
     * 导航栏点击歌手，查询全部，按歌手热度降序排列
     * @param page
     * @return ArrayList<Singer> singers
     * @author lym
     */
    ArrayList<Singer> getAllSingers(int page);

    /**
     * 根据用户点击的不同歌手筛选条件查询，按歌手热度降序
     * 首字母，地区，流派，性别/组合
     * @param firstLetter,area,genre,sex,page
     * @return ArrayList<Singer> singers
     * @author lym
     */
    ArrayList<Singer> getSingersByOption(String firstLetter, String area, String sex, String genre,int page);
    /**
     * 通过歌手地区，查询歌手歌曲
     * @param area,page
     * @return 歌手最新歌曲，歌手不重复
     */

    ArrayList<Singer> getSingersSongsByArea (String area,int page);

    /**
     * 通过歌手地区，查询歌手专辑
     * @param area,page
     * @return 歌手最新歌曲，歌手不重复
     */

    ArrayList<Singer> getSingersAlbumsByArea (String area,int page);
    /**
     * 通过歌手ID查询详情
     * @param singerId
     * @return Singer
     */
    Singer getSingersBySingerId(Long singerId);
    /**
     * 通过歌手ID查询歌手歌曲/专辑数量
     * @param singerId
     * @return singer
     */
    Singer songsAlbumsAmount(Long singerId);

    /**
     * 通过歌手ID  查询歌手的歌曲集合
     */
    ArrayList<Song> getSongsBySingerId(Long singerId);

    List<Album> selectAlbumBySingerId(Long singerId);
    /**
     * 通过中文模糊查询，通过热度降序排列
     * @param letter
     * @return ArrayList<Singer>
     */
    ArrayList<Singer> getSingersByFuzzy(String letter);
}
